FLiNT Version 1.03
- 2008 年 6月 10 日
久々にFLiNTを使ったのですが、Versionが1.03になっていました。
以前、調べた時のVersionは0.94です。
使ってみたのですけど、以前のままだと動かなかったよ…。まだ二ヶ月位なのに。
当然動くと思ってるので、え?なんでって思うから。
差分を調べて変更された部分をまとめます。
Emitterの定義が大幅に変更されたようで、DisplayObjectEmitterやBitmapEmitterなどEmitterの区分けが無くなり表示はRencererで設定するようになった。さらにsetCounterメソッドが無くなって、counterプロパティでCounterを設定するようになった。
動かない理由はこれだったのだけれど、そんな根本の部分が変わったの?と問詰めたくなる…。
emittersパッケージ旧バージョンはDisplayObjectEmitter、BitmapEmitterのインスタンスを作り、表示リストに加えていましたが、Rendererを設定し表示リストにはrendererを追加します。パーティクルを放つcounterの設定がsetCounterメソッドからcounterプロパティに変わっています。似たことは可能だった思うけどaddDisplayObjectsってメソッドも無かったです。
●Emitter
・プロパティ
■counter : Counter
EmitterのCounter。
・Counterを設定します。
※以前はsetCounter( 設定するCounter )
■particleFactory : ParticleFactory
パーティクルを作ったり消したりするParticleFactory。
・通常自動的にParticleCreatorのインスタンスが設定される。
※ParticleCreator
■renderer : Renderer
Emitterで設定したパーティクルを表示するRenderer。
・メソッド
■addDisplayObjects(… objects):void
引数のDisplayObjectをパーティクルとしてRencererに表示します。
objects = 追加するDisplayObject。
・追加したDisplayObjectは既存の表示リストから取り除かれます。
・Emitterのparticlesに追加されます。
■rendererGlobalToLocal(p:Point):Point
引数のPointをグローバル座標からRendererのローカル座標に変換して返します。
p:Point = ポイント。
・旧バージョンのglobalToLocal()と同様と思います。
■rendererLocalToGlobal(p:Point):Point
引数のPointをRendererのローカル座標からグローバル座標に変換して返します。
p:Point = ポイント。
・旧バージョンのlocalToGlobal()と同様と思います。
●renderersパッケージ
renderersパッケージは0.94には無かったパッケージでEmitterの設定を表示するのに使われています。旧バージョンでは使うEmitterを選ぶことで同様のことをしていました。
renderersパッケージの各クラスはRenderersインターフェースのメソッドを継承しています。
BitmapRenderer
DisplayObjectRenderer
FullStageBitmapRenderer
FullStagePixelRenderer
PixelRenderer
の5つのクラスが用意されていて、パーティクルをDisplayObjectで追加するのがDisplayObjectRenderer。それ以外はBitmapにしてパーティクルを描きます。
BitmapRendererとPixelRendererはパーティクルが描かれる領域をRectangleで設定できます。
FullStageBitmapRenderer、FullStagePixelRendererは描かれる領域がステージサイズとステージの位置に設定されます。これは旧バージョンと同様の動作のようです。
旧バージョンで外部SWFとして読み込んだ場合、FLiNTのコンテンツがうまく表示されなかったので、このあたりは新しいBitmapRendererを使うと解決できるような気がします。
●Renderer
メソッド
■addParticle(particle:Particle):void
このRenderを設定したEmitterにパーティクルを追加する時このメソッドが呼ばれます。
・particle:Particle = 対象パーティクル。
■removeParticle(particle:Particle):void
このRenderを設定したEmitterからパーティクルを削除する時このメソッドが呼ばれます。
・particle:Particle = 対象パーティクル。
■renderParticles(particles:Array):void
このRenderを設定したEmitterがパーティクルを描く時このメソッドが呼ばれます。
・particles:Array = 対象パーティクルの入った配列。通常Emitterのparticlesになります。
●BitmapRenderer
■BitmapRenderer(canvas:Rectangle, smoothing:Boolean = false)
パーティクルをビットマップとして表示するRenderer。
canvas:Rectangle = パーティクルを描く領域を設定します。
smoothing:Boolean = スムージングの有無。
プロパティ
■canvas : Rectangle
パーティクルを描く領域
メソッド
■addFilter(filter:BitmapFilter, postRender:Boolean = false):void
このRendererが適用するフィルタに引数のフィルタを加えます。
filter:BitmapFilter = 適用するフィルター
postRender:Boolean = falseだとパーティクルを描く前にフィルタを適用し、trueだとパーティクルを描いた後にフィルタを適用します。
■addParticle(particle:Particle):void
このRendererを設定したEmitterにパーティクルを追加する時このメソッドが呼ばれます。
※メソッドの中身からなので無視してよいと思います。
■clearPaletteMap():void
このRendererのparetteMapの設定をクリアします。
■dispose():void
このRendererのBitmapDataをクリアします。
■removeFilter(filter:BitmapFilter):void
このRendererが適用するフィルタから引数のフィルタを削除します。
■removeParticle(particle:Particle):void
このRenderを設定したEmitterからパーティクルを削除する時このメソッドが呼ばれます。
※メソッドの中身は空なので無視してよいと思います。
■renderParticles(particles:Array):void
particlesの各パーティクルにフィルタ